home *** CD-ROM | disk | FTP | other *** search
/ Shareware Universe - The Gold Collection / Shareware Universe The Gold Collection.iso / music / dmp / dmp.go next >
Text File  |  1996-04-19  |  19KB  |  483 lines

  1.  
  2.  
  3.                                  DMP.DOC
  4.  
  5.              Documentation for the Dual Module Player v4.00
  6.  
  7.         Copyright (C) 1992,1995 Otto Chrons. All rights reserved
  8.  
  9.  
  10.  
  11.     Dual Module Player is a program for playing music modules on different
  12.     sound systems on IBM PC compatible machines. It uses DSMI sound
  13.     programming interface (Digital Sound & Music Interface) to achieve
  14.     high quality sound and wide sound card support.
  15.  
  16.     This packet includes both the realmode (DMP.EXE) and protected mode
  17.     (DMP32.EXE) versions of DMP. Usually DMP32 gives you better
  18.     performance and also more memory in the DOS shell but it may not work
  19.     very well under some multitaskers. You shouldn't even try to run
  20.     either version as a background task under Windows.
  21.  
  22.     DMP32 and M2AMF use the PMODE/W DOS extender to run in 32-bit protected
  23.     mode under plain DOS. Thanks for PMODE/W go to Charles Scheffold and
  24.     Thomas Pytel.
  25.  
  26.     DMP is careware so you can freely copy it to your friends and
  27.     distribute it to BBSes etc. If you like DMP you should send me some
  28.     money that will be directed to charity. See the end screen of DMP for
  29.     more information.
  30.  
  31.  
  32.     Currently DMP supports following module formats:
  33.  
  34.  
  35.         MOD,NST     The original Amiga module format (SoundTracker,
  36.                     NoiseTracker). Also supported by many PC trackers.
  37.                     Original format supported only 4 channels but many
  38.                     variants can support up to 32 channels.
  39.  
  40.         STM,S3M     Scream Tracker format. S3M can support up to 16
  41.                     channels while STM is limited to 4.
  42.  
  43.         669         Composer669 module format using 8 channels.
  44.  
  45.         FAR         Farandole tracker format capable of using 16 channels.
  46.  
  47.         MTM         MultiTracker format. It's a MOD variant with up to 32
  48.                     channels.
  49.  
  50.         AMF         DSMI's internal module format. You can convert all the
  51.                     previous formats to AMF with M2AMF but not vice versa.
  52.                     Using AMF format saves you disk space because AMFs are
  53.                     usually smaller than other module formats. DMP can
  54.                     also load AMFs faster than other formats. But remember
  55.                     that you cannot play AMFs on any other player, nor can
  56.                     you convert AMFs back to any other format.
  57.  
  58.  
  59.  
  60.     DMP is a simple program without any fancy graphics or mouse support.
  61.     Most DMP options can be set with command line parameters, or by
  62.     setting them into DMP envrionment variable or DMP.INI setup file.
  63.  
  64.  
  65.     This is the command line syntax of DMP:
  66.  
  67.  
  68.         DMP [options] [modulename] [@listfile] [options]
  69.  
  70.     where,
  71.  
  72.         [modulename]    Name of the module (or modules) to play.  Wild
  73.                         cards are allowed.
  74.  
  75.         [@listfile]     name of a file containing a list of module names.
  76.                         You can also use wild cards within the list file.
  77.  
  78.         [options]       DMP settings
  79.  
  80.                         -H,  -?         Show help screen about options.
  81.  
  82.                         -Nxx            Set default panning to xx. Most
  83.                                         module formats don't support
  84.                                         default panning, the channels are
  85.                                         either left or right. With this
  86.                                         option you can bring the channels
  87.                                         close to the middle position.
  88.                                         Value 0 means middle panning, 63
  89.                                         sets the channels as much apart as
  90.                                         possible and 100 forces surround
  91.                                         sound.
  92.  
  93.                         -Fxx            Select digital effect xx as the
  94.                                         default effect. Digital effects
  95.                                         are defined in DMP.INI
  96.  
  97.                         -E              Disable extended (BPM) tempos. Use
  98.                                         this option if you encounter tempo
  99.                                         problems with old modules.
  100.  
  101.                         -L              Inhibit looping. If you are
  102.                                         playing just one module DMP will
  103.                                         by default loop the module
  104.                                         forever.
  105.  
  106.                         -O              Randomize the playing order of
  107.                                         modules.
  108.  
  109.                         -B              Disable EMS usage.
  110.  
  111.                         -W[command]     Run [command] after staring to
  112.                                         play the module. If you want to
  113.                                         give command line parameters to
  114.                                         [command], put quotation marks (")
  115.                                         around the option i.e.
  116.                                         "-Wdir *.mod"
  117.  
  118.                                         If [command] exits with error
  119.                                         level 68, DMP terminates
  120.                                         immediately.
  121.  
  122.                         -X              Inhibit all output. DMP writes
  123.                                         absolutely nothing on the screen.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                           Using default options
  130.                           ---------------------
  131.  
  132.  
  133.  
  134.     If you find yourself using the same options all the time you can make
  135.     them default options by setting up a DMP evironment variable or
  136.     including them into DMP.INI.
  137.  
  138.     For example,
  139.  
  140.         You always want to use quality mode and sampling rate of 22kHz and
  141.         mono mode, put following line into your AUTOEXEC.BAT
  142.  
  143.         SET DMP=-q -s22 -m
  144.  
  145.     NOTE!  You cannot override single letter options (-l,-o,-m,-q) with
  146.     command line parameters. All other options can be overriden.
  147.  
  148.     Alternatively you can use the CmdLine parameter in DMP.INI for same
  149.     purpose.
  150.  
  151.  
  152.  
  153.                       Setting up your sound system
  154.                       ----------------------------
  155.  
  156.     Before running DMP you must select and setup the sound driver with the
  157.     included DSETUP program. The program will let you choose a sound card
  158.     and then select the hardware setup and other options for that sound
  159.     device. Finally it saves the configuration into SOUND.CFG which DMP
  160.     uses to load and initialize the sound card driver.
  161.  
  162.  
  163.                              Playing modules
  164.                              ---------------
  165.  
  166.     DMP automatically goes to the file selection screen if no valid
  167.     modules have been selected on the command line.
  168.  
  169.     You can also build up play lists for DMP (with an external shell
  170.     program for example). DMP reads this list file and scans each line for
  171.     a module name. There should be only one file name per line. The name
  172.     extension apply also for module names in play list.
  173.  
  174.     Example:
  175.  
  176.         DMP beyond.mod *.NST @goodmods
  177.  
  178.         goodmods is a text file containing following lines:
  179.  
  180.         occ-san.stm
  181.         stars.mod
  182.         intro3.s3m
  183.  
  184.         DMP will play following modules: BEYOND.MOD, OCC-SAN.STM, STARS.MOD,
  185.         INTRO3.S3M and all .NST-files in the current directory.
  186.  
  187.  
  188.  
  189.                           Module file selector
  190.                           --------------------
  191.  
  192.     A new feature in DMP 4.00 is a handy module file selector that lets
  193.     you interactively make a playlist of modules and edit that list. You
  194.     can select modules from different directories and disk drives. Modules
  195.     can be sorted by filename, extension, module name, size and data both
  196.     in ascending and descending order. There is also a speed search
  197.     function with which you can quickly jump to a module matching the
  198.     search pattern. This feature works both for file name and module name.
  199.     Active key commands can be seen on the right side of the screen.
  200.  
  201.  
  202.  
  203.                      DMP configuration file DMP.INI
  204.                      ------------------------------
  205.  
  206.     DMP has a config file called DMP.INI. It should be placed in the same
  207.     directory with DMP.EXE but DMP will also find it if it's somewhere in
  208.     the PATH. See the file itself for explanations on config switches and
  209.     strings.
  210.  
  211.  
  212.                         DMP play screen and keys
  213.                         ------------------------
  214.  
  215.     After DMP has loaded the first module and started to play it you see
  216.     the playback screen. In this screen you can find a lot of information
  217.     on the currently playing module, like the song name, how much memory
  218.     is used by the module, where the player is currently playing etc.
  219.  
  220.     You also see channel specific information showing you the instrument
  221.     name that is playing on that track and also other sound parameters.
  222.     On the right are volume bars that give you an approximation of the
  223.     sound volume on that track.
  224.  
  225.     Under the channel information is a list of instrument names. It is
  226.     quite common that composers use this space for some messages instead
  227.     of real instrument names.
  228.  
  229.  
  230.     Pressing 'H' brings up a quick-help showing keys that control the
  231.     program.
  232.  
  233.         Keys:
  234.  
  235.                 F           Go to module file selector.
  236.  
  237.                 P           Pause module playback. Pressing any key
  238.                             resumes.
  239.  
  240.                 1-9,0       Turn track 1-9 on/off. 0 turns selected track
  241.                             on/off.
  242.  
  243.                 S           Set selected track to solo mode i.e. all other
  244.                             tracks are muted. Pressing 'S' again on the
  245.                             same track unmutes other channels.
  246.  
  247.                 up/down     Select a track.
  248.  
  249.                 left/right  Jump to previous/next pattern.
  250.  
  251.                 pgup/pgdn   Scroll instrument list up/down
  252.  
  253.                 F1-F10,+,-  Set playback volume.
  254.  
  255.                 [,]         Decrease/increase speed (module tempo).
  256.  
  257.                 {,}         Decrease/increase module BPM tempo.
  258.  
  259.                 L,M,R,U     Set panning to full left/middle/right or
  260.                             surround.
  261.  
  262.                 , .         Pan to left/right
  263.  
  264.                 V           Select real/fake volume bars. Default is real.
  265.  
  266.                 E           Select digital effect (not available on GUS).
  267.                             Shows a menu where you can select the effect
  268.                             with up/down or with numbers 0-9 and X.
  269.  
  270.                 N           Stop playing current module and load next module.
  271.  
  272.                 B           Stop playing current module and load previously
  273.                             played module.
  274.  
  275.                 D           DOS shell (write 'EXIT' to get back to DMP)
  276.  
  277.                 ESC         Exit DMP.
  278.  
  279.  
  280.  
  281.  
  282.  
  283.                           Technical information
  284.                           =====================
  285.  
  286.     DMP uses software mixing routines to play up to 32 different digital
  287.     sounds on one mono/stereo digital channel of your sound system. With
  288.     Gravis Ultrasound, however, DMP uses the GUS onboard processor to do
  289.     all the sound mixing. The software mixing routines are highly
  290.     optimized assembly language and there are multiple routines to achieve
  291.     best performance with any sound system.
  292.  
  293.  
  294.  
  295.                               Quality mode
  296.                               ------------
  297.  
  298.     Quality mode was orignally implemented only on 8-bit sounds cards to
  299.     overcome the dynamic limitation of 8-bits. It uses 16-bit mixing
  300.     routines to achieve 96dB dynamic range (instead of 48dB) and post
  301.     processes the 16-bit data into 8-bits with a look-up table that
  302.     amplifies the sound. Because of this post processing, the Quality mode
  303.     takes more processor power but it's worth it. To further amplify the
  304.     sound you can use '-Axx' command line option. Quality mode is always
  305.     enabled with 8-bit sound cards.
  306.  
  307.     For 16-bit cards there's no need to use Quality mode to improve the
  308.     quality of the sound. But with up to 32 channels the dynamics of
  309.     individual channels go worse i.e. the volume is lower. You can of
  310.     course select an aplification option in the sound setup to amplify the
  311.     sound but there is always a risk of click and noise if the sound
  312.     overruns.  This is where 16-bit Quality mode comes in. It uses a
  313.     temporary 32-bit buffer to do the mixing and post processes the buffer
  314.     by clipping values that can't fit to 16-bits. Unlike 8-bit Quality
  315.     mode, there is no default amplification in 16-bit Quality mode. 16-bit
  316.     quality mode is not enabled unless you use an amplification mode that
  317.     enables it.
  318.  
  319.  
  320.                              Digital effects
  321.                              ---------------
  322.  
  323.     New to DMP 3.00 was the support for digital effects. Currently you can
  324.     do reverb/echo style of effects and simple lowpass filtering. These
  325.     effects are only available on sound systems where DMP does the mixing
  326.     in software (i.e. the final sound data can be post processed), so you
  327.     cannot use them with GUS.
  328.  
  329.     You can have up to 10 predefined effects (defined in DMP.INI) and
  330.     select between them while playing by pressing 'E' or with command line
  331.     parameter '-Fxx'.
  332.  
  333.  
  334.  
  335.                                  Filters
  336.  
  337.     You can use two different lowpass filters to filter the noise caused
  338.     by aliasing in mixing routines. These filters are really simple so
  339.     they don't use much processor power.
  340.  
  341.     Filter 1 algorithm is defined as:
  342.  
  343.             y(n) = 0.5*x(n) + 0.5*x(n-1)
  344.  
  345.     Filter 2 is:
  346.  
  347.             y(n) = 0.75*x(n) + 0.25*x(n-1)
  348.  
  349.     Of course the actual filter routines use simple additions and shifts
  350.     instead of floating point multiplications to achieve best possible
  351.     speed.
  352.  
  353.     See DMP.INI how to use these filters.
  354.  
  355.     By default DMP uses the Filter 2 (this can be changed in DMP.INI or
  356.     with '-Fxx' command line parameter).
  357.  
  358.  
  359.  
  360.                            Reverb/echo effects
  361.  
  362.     DMP uses a user definable reverb/echo engine to create effects from
  363.     massive reverbs to funny sounding echos. Here is the diagram of that
  364.     engine.
  365.  
  366.  
  367.      ┌─────┐                                    ┌────────┐
  368.      │Input├─────────────────────────────────┬──┤        │          ┌──────┐
  369.      └─────┘                   ┌────────┐    │  │ Filter ├──────────┤Output│
  370.         ┌──────────────────────┤        ├────│──┤        │          └──────┘
  371.         │        ┌─────────────┤ Filter │    │  └────────┘
  372.         │        │     ┌───────┤        ├─┐  │
  373.         │        │     │       └────────┘ │  │
  374.         │        │     │                  │  │
  375.         │        │     │                  │  │
  376.         │        │     │                  │  │
  377.         │        │     │                -----│
  378.         │        │     │        feedback\ G /│        G = gain
  379.  "echos"│        │     │                 \_/ │
  380.        / \      / \   / \                 │  │        D = delay
  381.       / G1\    / G2\ / G3\                │  │
  382.       -----    ----- -----                │  │
  383.         │        │     │                 ┌┴──┴┐
  384.         │        │     │                 │ ++ │
  385.         │        │     │                 └──┬─┘
  386.         │        │     │                    │
  387.         │        │     │                    │
  388.      D1 │     D2 │  D3 │                    │
  389.     ┌───┴────────┴─────┴───────────────┐    │
  390.   ┌─┤        delay line                │    │
  391.   │ └──────────────────────────────────┘    │
  392.   │                                         │
  393.   │                                         │
  394.   └─────────────────────────────────────────┘
  395.  
  396.  
  397.     The number of echos can be from one to eight and each has its own
  398.     position on the delay line and its own gain value. You can change the
  399.     number of echos and paramters for each echo in DMP.INI
  400.     [DigitalEffects] section. You can also set the "feedback" value.
  401.  
  402.     You can also use negative gain values to create a 180 degree phase
  403.     shift.
  404.  
  405.     The filters used in reverb are the same as in filter 1.
  406.  
  407.     Setting a reverb in DMP.INI looks like following:
  408.  
  409.     Effect1 = <effect_name> R <feedback> <echo 1 delay> <echo 1 gain> ...
  410.  
  411.  
  412.     See DMP.INI for examples on reverbs and echos.
  413.  
  414.  
  415.  
  416.                            Reverb performance
  417.  
  418.     Calculating one echo in reverb engine requires a few simple arithmetic
  419.     instructions and one multiplication. In addition calculating feedback
  420.     requires another multiplication. So with a 6 echo reverb the routine
  421.     must do seven multiplications and lots of simple instructions for EACH
  422.     AND EVERY SAMPLE from input. In comparison the mixing routines in the
  423.     actual sample playback engine require only a few simple instructions
  424.     per sample.
  425.  
  426.     Unless you have a powerful 486 it's not wise to use stereo mode
  427.     because this doubles the reverb overhead. Even on a 486/33 using
  428.     reverb with 44kHz stereo data can bring the machine on its knees. On
  429.     slower machines you will start to hear the playback buffer repeating
  430.     as DMP can't keep up with sound card DMA.
  431.  
  432.     Using simple echos requires a lot less processor computing power, it's
  433.     all dependant on the number of echos.
  434.  
  435.     Also notice that the reverb engine in DMP32 a bit more powerful than
  436.     the one used in DMP because DMP32 can effectively make use of 32-bit
  437.     instructions.
  438.  
  439.  
  440.  
  441.  
  442.                           Contacting the author
  443.                           =====================
  444.  
  445.  
  446.     If you have suggestions/questions/problems about DMP, feel free to
  447.     contact the author. Email is preferred.
  448.  
  449.  
  450.         Mail address:
  451.  
  452.             Otto Chrons
  453.             Vaajakatu 5 K 199
  454.             FIN-33720 TAMPERE
  455.             FINLAND
  456.  
  457.  
  458.         Internet e-mail:
  459.  
  460.             otto.chrons@cs.tut.fi
  461.  
  462.  
  463.         Internet WWW page:
  464.  
  465.             http://www.cs.tut.fi/~c142092
  466.  
  467.  
  468.  
  469.                        Getting new versions of DMP
  470.                        ---------------------------
  471.  
  472.     Newest version is always available at:
  473.  
  474.         Internet FTP:
  475.         -------------
  476.  
  477.             ftp.cdrom.com       /pub/demos/music/programs/players
  478.  
  479.  
  480.     For a distribution site near you, check out SUPPORT.DMP.
  481.  
  482.     See DMP.REV for revision history.
  483.